/* Universidad del Valle de Guatemala
 * CC2003 - Algoritmos y Estructuras de Datos
 * HOJA DE TRABAJO #7
 * Fecha de Entrega: Sábado 8 de Octubre de 2011
 */

/**
 * Interfaz que representa las acciones que pueden realizar las implementaciones
 * de la PriorityQueue.
 * @author José Antonio Bagur - 10275
 */

public interface PriorityQueue <E> extends Comparable <E> {
    
        /**
         * PRE: !isEmpty().
         * POST: Valor mínimo en la cola.
         * @return E mínimo.
         */
        public E getFirst();
     
    
        /**
         * PRE: !isEmpty().
         * POST: Remueve el valor mínimo de la cola.
         * @return E mínimo.
         */
        
        public E remove();
        
    
        /**
         * PRE: Valor es comparable y no null.
         * POST: Valor es añadido a la cola.
         * @param value 
         */
        public void add(E value);
    
    
        /**
         * PRE:
         * POST: Regresa el número de elementos en la cola.
         * @return 
         */
        public int size();
    

        /**
         * PRE:
         * POST: True si no existen elementos en la cola.
         * @return true si la PriorityQueue se encuentra vacía.
         */
         public boolean isEmpty();

}   // FIN DE LA INTERFAZ PRIORITYQUEUE
